package com.sakiko.lifecycle;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

// 生命周期
public class UserService implements InitializingBean, DisposableBean {
    private Integer count;

    @Override
    public void afterPropertiesSet() throws Exception {
        this.count = 8;
        System.out.println("完成了初始化工作...");
    }

    /**
     * 自定义的初始化和销毁方法 public void 名称(随意命名) 无参数
     */
    public void start() {
        System.out.println("第二种初始化方法");
    }

    // 注解方式实现
    @PostConstruct
    public void hello() {
        System.out.println("第三种初始化方法");
    }

    @Override
    public void destroy() throws Exception {
        count = null;
        System.out.println("完成了销毁工作...");
    }

    /**
     * 自定义的初始化和销毁方法 public void 名称(随意命名) 无参数
     */
    public void end() {
        System.out.println("第二种销毁方法");
    }

    // 注解方式实现
    @PreDestroy
    public void byeBye() {
        System.out.println("第三种销毁方法");
    }
}
